﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Web;
using System.Windows.Forms;
using Modelo;
using Servicios;

namespace AppFerreteria
{
    public partial class frmVentaCliente : Form
    {
        public ImageList ImageList { get; set; }
        private List<Articulo> carrito = new List<Articulo>();

        public frmVentaCliente()
        {
            InitializeComponent();
        }

        public frmVentaCliente(Articulo articulo)
        {
            InitializeComponent();
            txtCodigo.Text = articulo.Codigo;
        }


        private void frmVentaCliente_Load(object sender, EventArgs e)
        {
           
            txtFecha.Text = DateTime.Now.ToString("dd/MM/yyyy");
            txtHora.Text = DateTime.Now.ToString("hh:mm:ss");
            //ingresar imagen por código
            //btnBuscarCliente.BackgroundImage = Image.FromFile(@"C:\Users\lencina\Pictures\pruebabuscar.png");

           
        }

        private void button8_Click(object sender, EventArgs e)
        {
            txtCodigo.Text = string.Empty;
            txtNombre.Text = string.Empty;
            txtCantidad.Text = string.Empty;
            txtPrecioUnitario.Text = string.Empty;
            
        }

        private void button4_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnBuscarCodigo_Click(object sender, EventArgs e)
        {
            //Si el codigo esta vacio muestra la pantalla de busqueda de articulos.
            if (String.IsNullOrEmpty(txtCodigo.Text))
            {
                Producto.frmBuscarProducto objfrmBuscarProducto = new Producto.frmBuscarProducto(this);
                objfrmBuscarProducto.Show();
            }
            //Si escribio codigo completa el nombre y el detalle del articulo
            else
            {
                Articulo articulo = new ArticuloService().GetArticuloByCodigo(txtCodigo.Text);
                txtNombre.Text = articulo.Nombre;
                txtPrecioUnitario.Text = (articulo.PrecioVenta.ToString());
            }
        }
        
        private void btnAgregarArticulo_Click(object sender, EventArgs e)
        {
            //Borro la lista para que actualice
            dgvProdVenta.DataSource = null;

            //Traigo de la base de datos el producto por codigo, lo agrego al carrito y a la lista
            Articulo articulo = new ArticuloService().GetArticuloByCodigo(txtCodigo.Text);
            carrito.Add(articulo);
            dgvProdVenta.DataSource = carrito;

            //Calcula el subtotal y el total dependiendo de la cantidad
            int precio = articulo.PrecioVenta * Convert.ToInt32(txtCantidad.Text);
            txtSubTotal.Text = precio.ToString();
            txtTotal.Text = (Convert.ToInt32(txtTotal.Text) + precio).ToString();
            txtCodigo.Text = "";
            txtPrecioUnitario.Text = "";
            txtNombre.Text = "";
            txtCantidad.Text = "1";
        }

        /// <summary>
        /// Metodo que llama el Buscador de articulo cuando hace doble click
        /// sobre el articulo seleccionado.
        /// Completa el codigo, el nombre y el precio
        /// </summary>
        /// <param name="articulo"></param>
        public void AgregarArticulo(Articulo articulo)
        {
            txtCodigo.Text = articulo.Codigo;
            txtNombre.Text = articulo.Nombre;
            txtPrecioUnitario.Text = (articulo.PrecioVenta.ToString());
        }

    }
}
